Lecture 10 — the core principles that drive DevOps, how Version Control underpins every pipeline, and a first look at automating CI with GitHub Actions.
Optimize the entire value stream from code commit to customer, not just individual silos. A local optimization (e.g., "Dev ships faster") that hurts the whole system (Ops drowns) is a net loss.
The faster problems are detected and communicated back, the faster they're fixed. Short feedback loops — automated tests, monitoring alerts, code reviews — shrink MTTR and prevent escalation.
Take risks, fail fast, learn faster. Blameless postmortems, A/B testing, and canary deployments let teams experiment safely without fear of punishment for failure.
If a human does a task more than twice, automate it. Manual steps are slow, error-prone, and non-reproducible. Automation creates speed, consistency, and an auditable trail.
"If your code isn't in version control, it doesn't exist. If your infrastructure isn't in version control, it's a ticking time bomb." — DevOps axiom
Every change is recorded with who, when, and why. You can always go back to any point in the past.
Multiple people work on the same codebase simultaneously. Branching and merging prevent them from overwriting each other's work.
Every modern CI/CD pipeline starts with a VCS event: "a developer pushed code." Without VCS, there is no automation.
| Aspect | Subversion (SVN) | Git |
|---|---|---|
| Architecture | Centralized — single server holds the only true copy. | Distributed — every clone is a full repository. |
| Offline Work | Impossible — need server for commit, log, diff. | Full offline capability; commit, branch, log locally. |
| Branching | Expensive directory copies; merging is painful. | Lightweight pointer (~40 bytes); merge is a core feature. |
| Speed | Network-bound for most operations. | Local-first; nearly instant for most operations. |
| SPOF Risk | Server goes down → entire team blocked. | No single point of failure; any clone can restore. |
| Industry | Legacy; still in some enterprises. | Dominant; used by 90%+ of software teams. |
git init, git commit)Think of Git as the engine and GitHub as the car body, dashboard, and GPS built around it.
Gitflow defines a strict branching model with designated roles for each branch. It was introduced by Vincent Driessen in 2010 and remains widely used in enterprise DevOps.
feature/login-page from developdeveloprelease/v1.0 from developmainmain as v1.0 → deploy to productionA security vulnerability is discovered in main. The develop branch has 3
half-finished features that are not ready to ship. You cannot wait for the next release cycle.
hotfix/security-patch directly from mainmain AND developmain as v1.0.1 and deploy immediatelyThe dual merge is critical: if you only merge into main,
the next release from develop will reintroduce the bug.
Continuous Integration is the practice of automatically building and testing every code change the moment it is pushed to the shared repository. The goal: detect bugs within minutes, not days.
Developer pushes code to a branch on GitHub.
A CI server automatically compiles the code and runs all unit/integration tests.
If tests pass → green checkmark. If tests fail → the PR is blocked and the developer is notified.
.github/workflows/actions/checkout@v4)This workflow triggers on every push to main or
develop, and on every PR targeting main. It checks out the code, installs Node.js
20, installs dependencies, and runs the test suite. If any step fails, the whole workflow fails.
main directly; always use PRsInfrastructure as Code; Continuous Delivery & Deployment; Continuous Monitoring; Jenkins Pipeline.
Create a free GitHub account (if you don't have one) and explore the Actions tab in any public repository.